`timescale 1ns / 1ps

/////////////////////////////////////////////////////////////////////////////
////                                                                     ////
//// Instituto Tecnologico de Costa Rica                                 ////
////                                                                     ////
//// Test bench del Sincronizador                                        ////
////                                                                     ////
//// Este archivo es parte del proyecto: Pong Game                       ////
//// http://repositorio-charmander.googlecode.com/svn/trunk/             ////
////                                                                     ////
//// Descripcion                                                         ////
//// Implementacion de unjuego de Pong como un proyecto                  ////
//// del curso de Taller de Diseño Digital.                             ////
////                                                                     ////
//// Funcionamiento:                                                     ////
//// - Modulo Test Bench del sincronizador                               ////
////                                                                     ////                                    
//// Autores:                                                            ////
//// - Gia Chen, kathya0812@gmail.com                                    ////
////   Edgar Rojas, edtec217@gmail.com                                   ////
////                                                                     ////
/////////////////////////////////////////////////////////////////////////////


module sincronizador_tb;

	// Inputs
	reg _clk_i;
	reg _rst_i;
	reg up_i;
	reg down_i;
	reg start_i;

	// Outputs
	wire _sync_rst_o;
	wire _sync_up_o;
	wire _sync_down_o;
	wire _sync_start_o;

	// Instantiate the Unit Under Test (UUT)
	sincronizador uut (
		._clk_i(_clk_i), 
		._rst_i(_rst_i), 
		.up_i(up_i), 
		.down_i(down_i), 
		.start_i(start_i), 
		._sync_rst_o(_sync_rst_o), 
		._sync_up_o(_sync_up_o), 
		._sync_down_o(_sync_down_o), 
		._sync_start_o(_sync_start_o)
	);

	//Instanciacion del clock
	initial begin
	_clk_i = 0;
	forever begin
	_clk_i = ~_clk_i;
	#50;
	end
	end
	
	initial begin
		// Initialize Inputs
		_clk_i = 0;
		_rst_i = 0;
		up_i = 0;
		down_i = 0;
		start_i = 0;

		// Wait 100 ns for global reset to finish
		#200;
        
		// Add stimulus here
		up_i = 1;
		#60;
		up_i = 0;
		#60;
		down_i = 1;
		#60;
		down_i = 0;
		#60;
		start_i = 1;
		#60;
		start_i = 0;
		#60;
		
	end
      
endmodule

